package academia.gui;

import java.awt.EventQueue;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.awt.SystemColor;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.text.MaskFormatter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Toolkit;
import academia.negocio.Cadastro;
import academia.persistencia.DBAcademia;
import java.awt.TextField;
import java.awt.Component;
import com.jgoodies.forms.factories.DefaultComponentFactory;
import java.awt.Color;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class CadastroCliente extends JFrame {
    Connection conn=null;
    ResultSet rs =null;
    PreparedStatement ps=null;

	private MaskFormatter ftmTelefone;      
	private MaskFormatter ftmNascimento;
	private MaskFormatter ftmCep;
	private MaskFormatter ftmCpf;
	private JFormattedTextField textCpf;
	
	

	/**
	 * Create the frame.
	 */
	public CadastroCliente()throws ParseException{
		
		setTitle("Cadastro de Cliente");
		setAlwaysOnTop(true);
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		getContentPane().setBackground(SystemColor.inactiveCaptionBorder);
		getContentPane().setFont(new Font("Tahoma", Font.BOLD, 11));
		getContentPane().setForeground(SystemColor.controlShadow);
		setBounds(100, 100, 450, 300);
		
		JLabel lblNome = new JLabel("Nome");
		lblNome.setBounds(30, 13, 32, 16);
		lblNome.setFont(new Font("Dialog", Font.BOLD, 11));
		lblNome.setForeground(SystemColor.controlShadow);
		
		JLabel lblCpf = new JLabel("CPF");
		lblCpf.setBounds(40, 40, 21, 15);
		lblCpf.setForeground(SystemColor.controlShadow);
		lblCpf.setFont(new Font("Dialog", Font.BOLD, 11));
		
		JLabel lblCep = new JLabel("CEP");
		lblCep.setBounds(41, 66, 21, 15);
		lblCep.setForeground(SystemColor.controlShadow);
		lblCep.setFont(new Font("Dialog", Font.BOLD, 11));
		
		JLabel lblCidade = new JLabel("Cidade");
		lblCidade.setBounds(23, 95, 39, 16);
		lblCidade.setForeground(SystemColor.controlShadow);
		lblCidade.setFont(new Font("Dialog", Font.BOLD, 12));
		
		JLabel lblNewLabel = new JLabel("Bairro");
		lblNewLabel.setBounds(29, 122, 33, 15);
		lblNewLabel.setForeground(SystemColor.controlShadow);
		lblNewLabel.setFont(new Font("Dialog", Font.BOLD, 11));
		
		JLabel lblEndereco = new JLabel("Endereco");
		lblEndereco.setBounds(10, 162, 52, 15);
		lblEndereco.setForeground(SystemColor.controlShadow);
		lblEndereco.setFont(new Font("Dialog", Font.BOLD, 11));
		
		JLabel lblDataDeNascimento = new JLabel("Data de nascimento");
		lblDataDeNascimento.setBounds(197, 67, 108, 15);
		lblDataDeNascimento.setForeground(SystemColor.controlShadow);
		lblDataDeNascimento.setFont(new Font("Dialog", Font.BOLD, 11));
		
		JLabel lblTelefone = new JLabel("Telefone");
		lblTelefone.setBounds(256, 95, 49, 15);
		lblTelefone.setForeground(SystemColor.controlShadow);
		lblTelefone.setFont(new Font("Dialog", Font.BOLD, 11));
		
		final TextField textNome = new TextField();
		textNome.setBounds(68, 14, 98, 22);
		getContentPane().add(textNome);
		
		ftmCpf = new MaskFormatter("###.###.###-##");
		textCpf = new JFormattedTextField(ftmCpf);
		textCpf.setBounds(68, 39, 98, 22);
		getContentPane().add(textCpf);
		
		ftmCep = new MaskFormatter("#####-###");
		final JFormattedTextField textCep = new JFormattedTextField(ftmCep);
		textCep.setBounds(68, 67, 98, 22);
		getContentPane().add(textCep);
		
		final TextField textCidade = new TextField();
		textCidade.setBounds(68, 95, 98, 22);
		getContentPane().add(textCidade);
		
		final TextField textBairro = new TextField();
		textBairro.setBounds(68, 123, 98, 22);
		getContentPane().add(textBairro);
		
		final TextField textEndereco = new TextField();
		textEndereco.setBounds(68, 162, 266, 22);
		getContentPane().add(textEndereco);
		
		final TextField textSenha = new TextField();
		textSenha.setBounds(311, 123, 88, 22);
		getContentPane().add(textSenha);
		
		ftmTelefone = new MaskFormatter("(##)####-####");
		final JFormattedTextField textTelefone = new JFormattedTextField(ftmTelefone);
		textTelefone.setBounds(311, 95, 88, 22);
		getContentPane().add(textTelefone);
		
		ftmNascimento = new MaskFormatter("##/##/####");
		final JFormattedTextField textNascimento = new JFormattedTextField(ftmNascimento);
		textNascimento.setBounds(311, 68, 88, 22);
		getContentPane().add(textNascimento);
		
		JLabel lblSenha = new JLabel("Senha");
		lblSenha.setBounds(271, 123, 34, 15);
		lblSenha.setForeground(SystemColor.controlShadow);
		lblSenha.setFont(new Font("Dialog", Font.BOLD, 11));
		
		final JLabel lblStaus = DefaultComponentFactory.getInstance().createLabel("O usuario foi cadastrado");
		lblStaus.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblStaus.setForeground(Color.GREEN);
		lblStaus.setBounds(128, 200, 246, 14);
		getContentPane().add(lblStaus);
		lblStaus.setVisible(false);
		
		final JButton btnCadastrar = new JButton("Cadastrar"); // Parte l�gica............................................................
		btnCadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
                            conn=DBAcademia.ConnectDB();
                            if(textNome.getText().equals("") ||textCpf.getText().equals("")||
                                textNascimento.getText().equals("")|| textTelefone.getText().equals("")||
                                textEndereco.getText().equals("")||textBairro.getText().equals("")||
                                textSenha.getText().equals("")||textCidade.getText().equals("")||textCep.getText().equals("")){
                                JOptionPane.showMessageDialog(null,"Campos obrigatorios\nTente novamente","Erro",JOptionPane.ERROR_MESSAGE);
                                return;
                            }
                            try{
                                String sql="INSERT INTO Pessoa(Nome,CPF,CEP,Cidade,Bairro,Endereco,Senha,Telefone,Nascimento) VALUES(?,?,?,?,?,?,?,?,?)";
                                ps=conn.prepareStatement(sql);
                                ps.setString(1,textNome.getText());
                                ps.setString(2,textCpf.getText());
                                ps.setString(3,textCep.getText());
                                ps.setString(4,textCidade.getText());
                                ps.setString(5,textBairro.getText());
                                ps.setString(6,textEndereco.getText());
                                ps.setString(7,textSenha.getText());
                                ps.setString(8,textTelefone.getText());
                                ps.setString(9,textNascimento.getText());
                                ps.execute();
                                JOptionPane.showMessageDialog(null,"Cadastro efetuado com Sucesso.");
                            }catch(SQLException a){
                                JOptionPane.showMessageDialog(null,a);
                            }
          finally{
                 try {
                      rs.close();
                      ps.close();
                      } catch (SQLException ex) {
                            Logger.getLogger(CadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
                      }
                 }
				lblStaus.setVisible(true);
				btnCadastrar.setVisible(false);
				
				
			}
		});
		btnCadastrar.setBounds(327, 228, 97, 23);
		getContentPane().setLayout(null);
		getContentPane().add(lblNewLabel);
		getContentPane().add(lblCidade);
		getContentPane().add(lblEndereco);
		getContentPane().add(lblCpf);
		getContentPane().add(lblNome);
		getContentPane().add(lblCep);
		getContentPane().add(lblSenha);
		getContentPane().add(lblDataDeNascimento);
		getContentPane().add(lblTelefone);
		
		
		
		JLabel lblCadastroDeCliente = new JLabel("Cadastro de Cliente");
		lblCadastroDeCliente.setBounds(224, 13, 175, 22);
		lblCadastroDeCliente.setFont(new Font("Tahoma", Font.BOLD, 18));
		lblCadastroDeCliente.setForeground(SystemColor.scrollbar);
		getContentPane().add(lblCadastroDeCliente);
		
		
		getContentPane().add(btnCadastrar);
		
		JButton btnVoltar = new JButton("Voltar");
		btnVoltar.setBounds(10, 228, 73, 23);
		btnVoltar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				new MenuRoot().setVisible(true);
				dispose();
			}
		});
		getContentPane().add(btnVoltar);
		
		
		
		JButton btnLimpar = new JButton("Limpar");
		btnLimpar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				lblStaus.setVisible(false);
				
				textNome.setText("");
				textCpf.setText("");
				textBairro.setText("");
				textCep.setText("");
				textCidade.setText("");
				textEndereco.setText("");
				textNascimento.setText("");
				textSenha.setText("");
				textTelefone.setText("");
				
				btnCadastrar.setVisible(true);

			}
		});
		btnLimpar.setBounds(160, 228, 89, 23);
		getContentPane().add(btnLimpar);
		
		
		setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{getContentPane(), lblNewLabel, lblCidade, lblEndereco, lblCpf, lblNome, lblCep, lblSenha, lblDataDeNascimento, lblTelefone, lblCadastroDeCliente, textNome, textCpf, textCep, textCidade, textBairro, textEndereco, textSenha, textTelefone, textNascimento, btnCadastrar, btnVoltar}));

	}
}
